package gin

import (
	"log"
	"time"
)

func ErrorLogger() HandlerFunc {
	return func(c *Context) {
		// 继续执行后续处理函数
		c.Next()

		// 如果错误列表中有信息,则以JSON格式返回给客户端这些信息
		if len(c.Errors) > 0 {
			// -1 是为了不重复设置响应状态码
			c.JSON(-1, c.Errors)
		}
	}
}

// Logger 日志中间件,返回一个符合 gin.HandlerFunc 的函数
func Logger() HandlerFunc {
	return func(c *Context) {
		t := time.Now()
		// Process request
		// 让index计数+1,标记本次已经执行过了,并继续执行后面的处理函数
		c.Next()

		log.Printf("%s in %v", c.Req.RequestURI, time.Since(t))

	}
}
